<?php

namespace addon\lian\model;

use addon\lian\dict\LianDict;
use app\model\system\Config as ConfigModel;
use app\model\BaseModel;
use app\model\system\Document;


/**
 * 链动2+1配置
 */
class Config extends BaseModel
{
    /******************************************************************** 链动2+1基本配置 start ****************************************************************************/
    /**
     * 设置链动2+1基本配置
     * @param $data
     * @param $is_use
     * @param $site_id
     * @return array
     */
    public function setLianBasicsConfig($data, $is_use, $site_id)
    {
        $config = new ConfigModel();

        //分销基本设置
        $basics_data = [
            'site_id' => $data['site_id'] ?? $site_id,
            'is_open' => $data['is_open'] ?? '1',
            'up_register' => $data['up_register'] ?? '0',//是否开启注册升级，0否，1是
            'up_way' => $data['up_way'] ?? '0',//升级触发方式，0=支付后，1=完成后
            'take_type' => $data['take_type'] ?? '0',//提成类型：0余额，1佣金，2积分，3数字积分
            'settle_way' => $data['settle_way'] ?? '0',//结算方式：0订单支付后，1订单完成后
            'settle_cycle' => $data['settle_cycle'] ?? '0',//结算周期：按天
            'count_type' => $data['count_type'] ?? '0',//计算方式：0支付金额，1商品现价，2商品原价
            'first_reward_frozen' => $data['first_reward_frozen'] ?? '0',//直推奖励冻结：0否，1是
            'is_publine' => $data['is_publine'] ?? '0',
            'publine_mode' => $data['publine_mode'] ?? '0',//公排模式，1:二二公排，2:三三公排，3：五五公排
            'publine_type' => $data['publine_type'] ?? '1',//公排类型，1:小公排直推优先，2:大公排
            'inline_way' => $data['inline_way'] ?? '1',//入排模式，1:注册入排，2:拍单入排
            'is_store' => $data['is_store'] ?? '0',//是否匹配多门店订单，0否1是
            'is_fusee' => $data['is_fusee'] ?? '0',//是否开启复购见单奖
            'order_num' => $data['order_num'] ?? '0',//复购见单规则,order_num下几单
            'level_num' => $data['level_num'] ?? '0',//复购见单规则,level开启几层
            'fugou_num' => $data['fugou_num'] ?? '0',//复购见单规则,fugou_num复购的第几单
            'fusee_level' => $data['fusee_level'] ?? '0',//复购见点层级限制
            'create_time' => time(),
            'update_time' => time(),
        ];

        $res = $config->setConfig($basics_data, '链动2+1基本配置', $is_use, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'LIAN_BASICS_CONFIG' ] ]);
        
        return $res;
    }

    /**
     * 获取链动2+1基本设置
     * @param $site_id
     * @return array
     */
    public function getLianBasicsConfig($site_id)
    {
        $config = new ConfigModel();
        $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'LIAN_BASICS_CONFIG' ] ]);

        if (empty($res[ 'data' ][ 'value' ])) {
            $res[ 'data' ][ 'value' ] = [
                'site_id' => $site_id,
                'is_open' => '1',
                'up_register' => '0',//是否开启注册升级，0否，1是
                'up_way' => LianDict::ORDERPAY,//升级触发方式，0=支付后，1=完成后
                'take_type' => LianDict::MONEY,//提成类型
                'settle_way' => LianDict::ORDERPAY,//结算方式：0订单支付后，1订单完成后
                'settle_cycle' => '0',//结算周期：按天
                'count_type' => LianDict::ORDERMONEY,//计算方式：0支付金额，1商品现价，2商品原价
                'first_reward_frozen' => '0',//直推奖励冻结：0否，1是
                'is_publine' => '0',//是否开启公排，0否1是
                'publine_mode' => '0',//公排模式，1:二二公排，2:三三公排，3：五五公排
                'publine_type' => '1',//公排类型，1:小公排直推优先，2:大公排
                'inline_way' => '1',//入排模式，1:注册入排，2:拍单入排
                'is_store' => '0',//是否匹配多门店订单，0否1是
                'is_fusee' => '0',//是否开启复购见单奖
                'order_num' => '0',//复购见单规则,order_num下几单
                'level_num' => '0',//复购见单规则,level开启几层
                'fugou_num' => '0',//复购见单规则,fugou_num复购的第几单
                'fusee_level' => '0',//复购见点层级限制
                'create_time' => time(),
                'update_time' => time(),
            ];
        }
      
        return $res;
    }

    /**
     * 获取链动2+1设置
     * @param $site_id
     * @return array
     */
    public function getLianConfig($site_id)
    {
        $config = new ConfigModel();
        $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'LIAN_CONFIG' ] ]);
        if (empty($res[ 'data' ][ 'value' ])) {
            $res[ 'data' ][ 'value' ] = [
                'fenxiao_condition' => 0,//成为分销商条件(0无条件 2消费次数 3消费金额 4购买商品)
                'is_agreement' => 0,//显示申请协议
                'agreement_title' => '',//协议标题
                'agreement_content' => '',//协议内容
                'consume_count' => 0,//消费次数
                'consume_money' => 0,//消费次数
                'consume_condition' => 1,//消费条件(1付款后 2订单完成)
                'img' => '',//申请页面顶部图片
                'perfect_info' => '',//完善资料
            ];

        }
        return $res;
    }

    /******************************************************************** 分销基本配置 end ****************************************************************************/

   


    /**
     * 链动2+1提现配置
     * @param $site_id
     * @return array
     */
    public function getLianWithdrawConfig($site_id)
    {
        $config = new ConfigModel();
        $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_WITHDRAW_CONFIG' ] ]);
        if (empty($res[ 'data' ][ 'value' ])) {
            $res[ 'data' ][ 'value' ] = [
                'withdraw' => 0,//最低提现额度
                'withdraw_rate' => 0,//佣金提现手续费
                'min_no_fee' => 0,//最低免手续费区间
                'max_no_fee' => 0,//最高免手续费区间
                'withdraw_status' => 1,//提现审核
                'withdraw_type' => 0,//提现方式
                'is_auto_transfer' => 0,
                'transfer_type' => '',
                'max' => 0
            ];
        }
        $value = $res[ 'data' ][ 'value' ];
        if (!isset($value[ 'transfer_type' ])) {
            $value[ 'transfer_type' ] = 'balance';
        }
        if (!isset($value[ 'max' ])) {
            $value[ 'max' ] = 0;
        }
        if (!isset($value[ 'is_auto_transfer' ])) {
            $value[ 'is_auto_transfer' ] = 0;
        }
        $res[ 'data' ][ 'value' ] = $value;
        return $res;
    }

    /**
     * 转账方式
     * @param int $site_id
     * @return array
     */
    public function getTransferType($site_id = 0)
    {
        $lian_withdraw_model = new LianWithdraw();
        $transfer_type_list = $lian_withdraw_model->getTransferType($site_id);
        $config = $this->getLianWithdrawConfig($site_id)[ "data" ][ 'value' ] ?? [];
        $data = [];
        $support_type = explode(",", $config[ "transfer_type" ]);
        foreach ($transfer_type_list as $k => $v) {
            if (in_array($k, $support_type)) {
                $data[ $k ] = $v;
            }
        }
        return $data;
    }
    /******************************************************************** 分销结算配置 end ****************************************************************************/

    /******************************************************************** 分销文字配置 start ****************************************************************************/

    /**
     * 设置链动2+1文字配置
     * @param $data
     * @param $is_use
     * @param $site_id
     * @return array
     */
    public function setLianWordsConfig($data, $is_use, $site_id)
    {
        $config = new ConfigModel();
        $res = $config->setConfig($data, '链动文字配置', $is_use, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'LIAN_WORDS_CONFIG' ] ]);
        return $res;
    }

    /**
     * 获取链动2+1文字配置
     * @param $site_id
     * @return array
     */
    public function getLianWordsConfig($site_id)
    {
        $config = new ConfigModel();
        $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'LIAN_WORDS_CONFIG' ] ]);
        if (empty($res[ 'data' ][ 'value' ])) {
            $res[ 'data' ][ 'value' ] = [
                'concept' => '链动2+1',// 链动2+1概念
                'lian_name' => '链动2+1',// 链动2+1名称
                'withdraw' => '提现',// 提现名称
                'account' => '佣金',// 佣金
                'my_team' => '我的团队',// 我的团队
                'child' => '下线',// 下线
            ];
        }
        return $res;
    }
    /******************************************************************** 分销文字配置 end ****************************************************************************/

}